package com.example.springfeature.runner;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Set;

////
////关于这个ApplicationRunner的使用场景，今天有些新的理解。
//        1.说明
//        　　希望项目在启动的时候加载一些系统参数，就要用到ApplicationRunner
//        　　ApplicationRunner是一个接口，我们需要实现它，并重写run()方法，当项目启动时，run()方法便会自动执行。
//        2.场景2
//        　　这个接口只有这点功能，我们也许感觉，springboot中在启动中加载参数，只用application.yml更加方便。
//        　　其实，这里有一种场景就非常适合使用这种场景。
//        　　项目存在一个队列，在项目一进行启动就可以往队列中添加数据，然后，从队列中消费数据
////
@Component
@Slf4j
@Order(value = 1)
public class StartLoader implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        loadSysParams();
    }
    public void loadSysParams(){
       log.info("【系统参数1】加载中...");

        log.info("【系统参数1】加载完成...");
    }
}
